﻿// 文件名：指针和const
// 创建时间：2021/6/21/星期一 12:19:02

#include <iostream>
using namespace std;


int main()
{
	//int a = 10; //非const数据
	//const int b = 10; //const数据
	//const int *p1 = &a; // 可以用指向const的指针指向非const数据
	//cout << "*p1 = " << *p1 << endl;
	//const int *p2 = &b; //也可以用指向const的指针指向const数据
	//cout << "*p2 = " << *p2 << endl;
	//int *p3 = &a; //非const的指针只能指向非const的数据
	//cout << "*p3 = " << *p3 << endl;
	//int *p4 = &b; //非法

	//允许修改指针的指向，但不允许修改指针指向的数据
	int a = 10;
	int b = 10;
	const int* p1 = &a;
	p1 = &b;

	//允许修改指针指向的数据，但不允许修改指针的指向
	int* const p2 = &a;
	*p2 = 20;
	
	//啥也不许修改
	const int* const p3 = &a;


	system("pause");
	return 0;
}